import Quill, {type QuillOptions} from 'quill';

import Embed from 'quill/blots/embed.js';
/**
 * 富文本编辑器配置
 */
export const editorOptions: QuillOptions = {
  theme: 'snow', // 使用主题
  placeholder: "请编辑规则",
  modules: {
    toolbar: {
      container: '#quill-toolbar', // Selector for toolbar container
      handlers: {
        // bold: customBoldHandler
        
      }
    }
    // toolbar: [
    //   [{ header: [1, 2, false] }],
    //   ["bold", "italic", "underline"], // 加粗 斜体 下划线 
    //   [{ list: "ordered" }, { list: "bullet" }],
    //   [{ script: "sub" }, { script: "super" }], // 上标/下标
    //   [{ indent: "-1" }, { indent: "+1" }], // 缩进
    //   [{ direction: "rtl" }], // 文本方向
    //   [{ size: ["small", false, "large", "huge", 80] }], // 自定义字号
    //   [{ header: 1 }, { footer: 1 }], // 新增标题/页脚格式按钮（如果需要）
    //   [{ color: [] }, { background: [] }], // 字体颜色、背景颜色
    //   [{ font: [] }], // 字体类型（如果你的浏览器支持）
    //   [{ align: [] }], // 对齐方式（左对齐、居中、右对齐、两端对齐）
    //   ["clean"], // 清除文本格式（如果你的浏览器支持）
    //   ["code-block"], // 代码块（如果需要）
    //   ["inlineCode"], // 行内代码块按钮（自定义）
    // ],
  },
}

class ReferenceBlock extends Embed {
  static blotName: string = "reference-block";
  static className: string = "reference-block";
  static tagName: string = "div";

  static create(value: { id: string; name: string,label:string }) {
    const root = super.create();
    // 将占位符值作为节点的属性保存
    root.dataset.id = value.id;
    root.dataset.name = value.name;
    // root.setAttribute("contenteditable", "false"); // 禁用编辑

    // const span = document.createElement("span");
    // span.classList.add("reference-node-name");
    // span.textContent = value.label;

    // root.appendChild(span);

    const label = document.createElement("span");
    label.classList.add("reference-node-key");
    label.textContent = "#" + value.name;
    label.className = 'rule-field-block'
    root.appendChild(label);

    return root;
  }
  static value(node: HTMLElement) {
    return {
      id: node.dataset.id,
      name: node.dataset.name,
      label: node.dataset.label,
    };
  }
}


// 注册自定义块
Quill.register(ReferenceBlock);
